package com.loren.designer.utils;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.Arrays;
import java.util.Random;

public class TestDataUtils {

    private static final Random RANDOM = new Random();

    public static JSONObject getBarLineData() {
        JSONObject jsonObject = new JSONObject();
        JSONObject data = new JSONObject();
        data.put("name", "手机品牌");
        data.put("data", Arrays.asList(RANDOM.nextInt(10000), RANDOM.nextInt(10000),
                RANDOM.nextInt(10000), RANDOM.nextInt(10000), RANDOM.nextInt(10000)));
        JSONArray series = new JSONArray();
        series.add(data);
        jsonObject.put("series", series);
        jsonObject.put("categories", Arrays.asList("苹果", "华为", "小米", "oppo", "vivo"));
        return jsonObject;
    }

    public static JSONArray getPiePictorialFunnelData() {
        JSONArray jsonArray = new JSONArray();
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("name", "苹果");
        jsonObject1.put("value", RANDOM.nextInt(10000));

        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("name", "华为");
        jsonObject2.put("value", RANDOM.nextInt(10000));

        JSONObject jsonObject3 = new JSONObject();
        jsonObject3.put("name", "小米");
        jsonObject3.put("value", RANDOM.nextInt(10000));

        JSONObject jsonObject4 = new JSONObject();
        jsonObject4.put("name", "oppo");
        jsonObject4.put("value", RANDOM.nextInt(10000));

        JSONObject jsonObject5 = new JSONObject();
        jsonObject5.put("name", "vivo");
        jsonObject5.put("value", RANDOM.nextInt(10000));

        jsonArray.add(jsonObject1);
        jsonArray.add(jsonObject2);
        jsonArray.add(jsonObject3);
        jsonArray.add(jsonObject4);
        jsonArray.add(jsonObject5);
        return jsonArray;
    }

    public static JSONArray getScatterData() {
        JSONArray jsonArray = new JSONArray();
        JSONObject object1 = new JSONObject();
        object1.put("name", "男性");
        JSONArray array1 = new JSONArray();
        for (int i = 0; i < 5; i++) {
            JSONArray array = new JSONArray();
            array.add(RANDOM.nextInt(200));
            array.add(RANDOM.nextInt(80));
            array1.add(array);
        }
        object1.put("value", array1);

        JSONObject object2 = new JSONObject();
        object2.put("name", "女性");
        JSONArray array2 = new JSONArray();
        for (int i = 0; i < 5; i++) {
            JSONArray array = new JSONArray();
            array.add(RANDOM.nextInt(170));
            array.add(RANDOM.nextInt(55));
            array2.add(array);
        }
        object2.put("value", array2);

        jsonArray.add(object1);
        jsonArray.add(object2);
        return jsonArray;
    }

    public static JSONObject getRadarData() {
        JSONObject jsonObject = new JSONObject();
        JSONArray indicator = new JSONArray();
        JSONObject object1 = new JSONObject();
        object1.put("name", "销售");
        object1.put("max", 5000);
        JSONObject object2 = new JSONObject();
        object2.put("name", "管理");
        object2.put("max", 5000);
        JSONObject object3 = new JSONObject();
        object3.put("name", "信息技术");
        object3.put("max", 5000);
        JSONObject object4 = new JSONObject();
        object4.put("name", "客服");
        object4.put("max", 5000);
        JSONObject object5 = new JSONObject();
        object5.put("name", "研发");
        object5.put("max", 5000);
        JSONObject object6 = new JSONObject();
        object6.put("name", "市场");
        object6.put("max", 5000);
        indicator.add(object1);
        indicator.add(object2);
        indicator.add(object3);
        indicator.add(object4);
        indicator.add(object5);
        indicator.add(object6);
        jsonObject.put("indicator", indicator);

        JSONArray series = new JSONArray();
        JSONObject seriesItem = new JSONObject();
        JSONArray data = new JSONArray();
        JSONObject dataItem1 = new JSONObject();
        dataItem1.put("name", "预算分配");
        dataItem1.put("value", Arrays.asList(RANDOM.nextInt(5000), RANDOM.nextInt(5000),
                RANDOM.nextInt(5000), RANDOM.nextInt(5000), RANDOM.nextInt(5000), RANDOM.nextInt(5000)));
        JSONObject dataItem2 = new JSONObject();
        dataItem2.put("name", "实际开销");
        dataItem2.put("value", Arrays.asList(RANDOM.nextInt(5000), RANDOM.nextInt(5000),
                RANDOM.nextInt(5000), RANDOM.nextInt(5000), RANDOM.nextInt(5000), RANDOM.nextInt(5000)));
        data.add(dataItem1);
        data.add(dataItem2);
        seriesItem.put("data", data);
        series.add(seriesItem);
        jsonObject.put("series", series);
        return jsonObject;
    }

    public static JSONObject getGaugeData() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("min", 0);
        jsonObject.put("max", 100);
        jsonObject.put("name", "及格率");
        jsonObject.put("value", RANDOM.nextInt(100));
        jsonObject.put("unit", "%");
        return jsonObject;
    }

    public static JSONArray getMapData() {
        JSONArray jsonArray = new JSONArray();
        JSONObject object1 = new JSONObject();
        object1.put("name", "广东");
        object1.put("value", Arrays.asList(113.12244, 23.009505, RANDOM.nextInt(500)));
        JSONObject object2 = new JSONObject();
        object2.put("name", "浙江");
        object2.put("value", Arrays.asList(119.5313, 29.8773, RANDOM.nextInt(500)));
        JSONObject object3 = new JSONObject();
        object3.put("name", "新疆");
        object3.put("value", Arrays.asList(87.9236, 43.5883, RANDOM.nextInt(500)));
        jsonArray.add(object1);
        jsonArray.add(object2);
        jsonArray.add(object3);
        return jsonArray;
    }

    public static JSONObject getTextMarqueeData() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("value", "随机文字【" + RANDOM.nextInt(1000000) + "】");
        return jsonObject;
    }

    public static JSONArray getTableData() {
        JSONArray jsonArray = new JSONArray();
        for (int i = 1; i <= RANDOM.nextInt(10) + 1; i++) {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", i + "" + i + "" + i + "" + i + "" + i);
            jsonObject.put("age", 17 + i);
            jsonObject.put("address", i + "" + i + "" + i + "" + i + "" + i + "" + i);
            jsonArray.add(jsonObject);
        }
        return jsonArray;
    }

}
